package com.elastic.utils;

import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

/**
 * @ClassName InfoAndMap
 * @Author xiezhuocai
 * @Description EsBaseInfo对象转成map对象
 * @Date 2021/12/22 11:23
 */
public class InfoAndMap {
    /**
     * 把Info的属性提取出来,单个对象的所有键值
     * @param object
     * @return
     */
    public static Map<String, Object> getKeysAndValues(Object object) {
        Map<String, Object> map = new HashMap<>();
        // 得到类对象
        Class<?> userCla = object.getClass();
        /* 得到类中的所有属性集合 */
        Field[] fs = userCla.getDeclaredFields();
        for (Field f : fs) {
            // 设置些属性是可以访问的
            f.setAccessible(true);
            Object val;
            try {
                val = f.get(object);
                // 得到此属性的值
                // 设置键值
                if (val!=null) {
                    map.put(f.getName(), val);
                }
            } catch (IllegalArgumentException | IllegalAccessException e) {
                e.printStackTrace();
            }
        }
        System.out.println("单个对象的所有键值====" + map.toString());
        return map;
    }
}
